From 60530b8a8ebec252fe212d8911834badb5587ca4 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Fri, 18 May 2001 17:35:20 +0000 Subject: [PATCH] Renamed gtk_image_menu_item_add_icon() to gtk_image_menu_item_set_icon() 2001-04-28 Martin Baulig * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() to gtk_image_menu_item_set_icon() and made it work if there's already an image. (gtk_image_menu_item_new): This function doesn't take any arguments anymore. (gtk_image_menu_item_new_with_label): New function. --- ChangeLog | 8 +++++ ChangeLog.pre-2-0 | 8 +++++ ChangeLog.pre-2-10 | 8 +++++ ChangeLog.pre-2-2 | 8 +++++ ChangeLog.pre-2-4 | 8 +++++ ChangeLog.pre-2-6 | 8 +++++ ChangeLog.pre-2-8 | 8 +++++ gtk/gtkimagemenuitem.c | 79 +++++++++++++++++++++++------------------- gtk/gtkimagemenuitem.h | 8 ++--- gtk/gtkitemfactory.c | 4 +-- tests/testgtk.c | 6 ++-- 11 files changed, 109 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index a937a4eedf..d531250900 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index a937a4eedf..d531250900 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +2001-04-28 Martin Baulig + + * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() + to gtk_image_menu_item_set_icon() and made it work if there's already + an image. + (gtk_image_menu_item_new): This function doesn't take any arguments anymore. + (gtk_image_menu_item_new_with_label): New function. + Thu May 17 16:20:04 2001 Jonathan Blandford * demos/gtk-demo/main.c (fontify): It's the worlds ugliest diff --git a/gtk/gtkimagemenuitem.c b/gtk/gtkimagemenuitem.c index 51dad6cd83..e56f26b05f 100644 --- a/gtk/gtkimagemenuitem.c +++ b/gtk/gtkimagemenuitem.c @@ -149,22 +149,11 @@ gtk_image_menu_item_set_property (GObject *object, { case PROP_IMAGE: { - GtkWidget *child; - - child = (GtkWidget*) g_value_get_object (value); - - if (child != image_menu_item->image) - { - if (image_menu_item->image) - gtk_container_remove (GTK_CONTAINER (image_menu_item), - image_menu_item->image); - - if (child) - { - gtk_image_menu_item_add_image (image_menu_item, - child); - } - } + GtkWidget *image; + + image = (GtkWidget*) g_value_get_object (value); + + gtk_image_menu_item_set_image (image_menu_item, image); } break; default: @@ -339,8 +328,13 @@ gtk_image_menu_item_forall (GtkContainer *container, } GtkWidget* -gtk_image_menu_item_new (GtkWidget *widget, - const gchar *label) +gtk_image_menu_item_new (void) +{ + return g_object_new (GTK_TYPE_IMAGE_MENU_ITEM, NULL); +} + +GtkWidget* +gtk_image_menu_item_new_with_label (const gchar *label) { GtkImageMenuItem *image_menu_item; GtkWidget *accel_label; @@ -356,9 +350,6 @@ gtk_image_menu_item_new (GtkWidget *widget, GTK_WIDGET (image_menu_item)); gtk_widget_show (accel_label); - if (widget) - gtk_image_menu_item_add_image (image_menu_item, widget); - return GTK_WIDGET(image_menu_item); } @@ -376,7 +367,9 @@ gtk_image_menu_item_new_from_stock (const gchar *stock_id, if (gtk_stock_lookup (stock_id, &stock_item)) { - item = gtk_image_menu_item_new (image, stock_item.label); + item = gtk_image_menu_item_new_with_label (stock_item.label); + + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); if (stock_item.keyval && accel_group) gtk_widget_add_accelerator (item, @@ -387,33 +380,47 @@ gtk_image_menu_item_new_from_stock (const gchar *stock_id, GTK_ACCEL_VISIBLE); } else - item = gtk_image_menu_item_new (image, stock_id); - + { + item = gtk_image_menu_item_new_with_label (stock_id); + + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + gtk_widget_show (image); return item; } void -gtk_image_menu_item_add_image (GtkImageMenuItem *image_menu_item, - GtkWidget *child) +gtk_image_menu_item_set_image (GtkImageMenuItem *image_menu_item, + GtkWidget *image) { g_return_if_fail (GTK_IS_IMAGE_MENU_ITEM (image_menu_item)); - g_return_if_fail (image_menu_item->image == NULL); - - gtk_widget_set_parent (child, GTK_WIDGET (image_menu_item)); - image_menu_item->image = child; + + if (image == image_menu_item->image) + return; + + if (image_menu_item->image) + gtk_container_remove (GTK_CONTAINER (image_menu_item), + image_menu_item->image); + + image_menu_item->image = image; + + if (image == NULL) + return; + + gtk_widget_set_parent (image, GTK_WIDGET (image_menu_item)); g_object_notify (G_OBJECT (image_menu_item), "image"); - if (GTK_WIDGET_REALIZED (child->parent)) - gtk_widget_realize (child); + if (GTK_WIDGET_REALIZED (image->parent)) + gtk_widget_realize (image); - if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child)) + if (GTK_WIDGET_VISIBLE (image->parent) && GTK_WIDGET_VISIBLE (image)) { - if (GTK_WIDGET_MAPPED (child->parent)) - gtk_widget_map (child); + if (GTK_WIDGET_MAPPED (image->parent)) + gtk_widget_map (image); - gtk_widget_queue_resize (child); + gtk_widget_queue_resize (image); } } diff --git a/gtk/gtkimagemenuitem.h b/gtk/gtkimagemenuitem.h index 714bcf76cc..e3381de09e 100644 --- a/gtk/gtkimagemenuitem.h +++ b/gtk/gtkimagemenuitem.h @@ -63,12 +63,12 @@ struct _GtkImageMenuItemClass GtkType gtk_image_menu_item_get_type (void) G_GNUC_CONST; -GtkWidget* gtk_image_menu_item_new (GtkWidget *widget, - const gchar *label); +GtkWidget* gtk_image_menu_item_new (void); +GtkWidget* gtk_image_menu_item_new_with_label (const gchar *label); GtkWidget* gtk_image_menu_item_new_from_stock (const gchar *stock_id, GtkAccelGroup *accel_group); -void gtk_image_menu_item_add_image (GtkImageMenuItem *image_menu_item, - GtkWidget *child); +void gtk_image_menu_item_set_image (GtkImageMenuItem *image_menu_item, + GtkWidget *image); GtkWidget* gtk_image_menu_item_get_image (GtkImageMenuItem *image_menu_item); #ifdef __cplusplus diff --git a/gtk/gtkitemfactory.c b/gtk/gtkitemfactory.c index dc305332ba..ff3b8cdd4f 100644 --- a/gtk/gtkitemfactory.c +++ b/gtk/gtkitemfactory.c @@ -1242,7 +1242,7 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory, image = gtk_image_new_from_pixbuf (pixbuf); if (image) - gtk_image_menu_item_add_image (GTK_IMAGE_MENU_ITEM (widget), image); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (widget), image); if (pixbuf) g_object_unref (G_OBJECT (pixbuf)); @@ -1251,7 +1251,7 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory, { image = gtk_image_new_from_stock (entry->extra_data, GTK_ICON_SIZE_MENU); if (image) - gtk_image_menu_item_add_image (GTK_IMAGE_MENU_ITEM (widget), image); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (widget), image); if (gtk_stock_lookup (entry->extra_data, &stock_item)) { diff --git a/tests/testgtk.c b/tests/testgtk.c index edb9741fe1..656114e2d1 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -2771,7 +2771,8 @@ create_menu (gint depth, gint length, gboolean tearoff) image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); gtk_widget_show (image); - menuitem = gtk_image_menu_item_new (image, "Image item"); + menuitem = gtk_image_menu_item_new_with_label ("Image item"); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); @@ -2858,7 +2859,8 @@ create_menus (void) image = gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU); gtk_widget_show (image); - menuitem = gtk_image_menu_item_new (image, "Help"); + menuitem = gtk_image_menu_item_new_with_label ("Help"); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (4, 5, TRUE)); gtk_menu_item_right_justify (GTK_MENU_ITEM (menuitem)); gtk_menu_bar_append (GTK_MENU_BAR (menubar), menuitem); -- 2.30.2